package com.pengshun.modules.api.news.service.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.pengshun.modules.api.coal.validator.Fourth;
import io.swagger.annotations.ApiModel;
import lombok.Data;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author luoligang
 * @create 2021/1/20
 */
@Data
public class NewsDto {


    @NotNull(message = "newId不能为空", groups = {Fourth.class})
    private Long newId;

    /**
     * 资讯的标题
     */
    private String title;
    /**
     * 资讯的链接
     */
    private String url;
    /**
     * 资讯的首图
     */
    private String image;
    /**
     * 类目ID
     */
    private Long newsCategoryId;
    /**
     * 类型，1新闻，2音频，3视频
     */
    private Integer newsType;

    /**
     * 图片展示类型（0，无图1，小图，2大图）
     */
    private Integer coverType;
    /**
     * 资讯的收藏
     */
    private Integer collectionCount;
    /**
     * 资讯的点赞数
     */
    private Integer likeCount;
    private Integer lookCount;
    /**
     * 评论数
     */
    private Integer commentCount;
    /**
     * 分享数
     */
    private Integer shareCount;
    /**
     * 状态 1 正常，0 表示禁用。
     */
    private Integer status;
    /**
     * 新闻内容
     */
    private String content;
    /**
     * 资讯发布者的唯一id
     */
    private Long userId;
    /**
     * 是否置顶
     */
    private Integer top;
    /**
     * 创建者
     */
    private String createBy;
    /**
     * 更新着
     */
    private String updateBy;
    /**
     * 创建日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
    private Date createTime;
    /**
     * 更新时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "MM-dd")
    private Date updateTime;


    private String name;
    private String author;
    private String lable;
    private String avatarName;

    private Integer type;
    /** 1最新 2热门  */
    private Integer isNew;

    public Integer getIsNew() {
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
        if(this.updateTime!=null){
            String now=format.format(new Date());
            if(now.equals(format.format(this.updateTime))){
                isNew=1;
            }else{
                isNew=2;
            }
        }
        return isNew;
    }

    public Integer getType() {
        if (this.newsType != null&&this.coverType!=null) {
            if (this.newsType == 3) {
                type = 4;
            } else if (this.coverType == 0) {
                type = 1;
            } else if (this.coverType == 1) {
                type = 2;
            } else if (this.coverType == 2) {
                type = 3;
            }
        }
        return type;
    }
}
